﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Elysium.Demo;
using SIIE_ERP.Codigo;
using Elysium.Demo.Ventas;
using SIIE_ERP.BaseDatos.Configuracion.Empresa;
using SIIE_ERP.BaseDatos.Configuracion;
using System.Data;
using Microsoft.Office.Interop.Excel;
using System.IO;
using System.Net.Mail;
using System.Net;

namespace Elysium.Demo.Configuracion
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class TiempoAire_TerminosCondiciones : UserControl
    {
        private UsuarioActivo _sesion;

        public TiempoAire_TerminosCondiciones(ref UsuarioActivo usuario)
        {
            InitializeComponent();
            this._sesion = usuario;  
        }

        private void ButtonInformacion_Click_1(object sender, RoutedEventArgs e)
        {
            WindowAyuda Ayuda = new Elysium.Demo.WindowAyuda("TiempoAire.htm", "Ayuda");
            Ayuda.Owner = SIIE_ERP.View.NavegacionUI.GetParentWindow(this); Ayuda.ShowDialog();
        }

        private void Hyperlink_Click_1(object sender, RoutedEventArgs e)
        {
            WindowAyuda Ayuda = new Elysium.Demo.WindowAyuda("TerminosTiempoAire.htm", "Terminos y Condiciones");
            Ayuda.Owner = SIIE_ERP.View.NavegacionUI.GetParentWindow(this); Ayuda.ShowDialog();
        }

        private void Button_Guardar_Click(object sender, RoutedEventArgs e)
        {
            if ((bool)CheckBoxTerminos.IsChecked)
            {
                if (!WebServicesClass.CheckConnection())
                {
                    MessageBox.Show("Necesita conexión a internet para poder realizar esta acción.");
                    return;
                }
                
                dbo_Cat_Empresa Cat_Empresa = new dbo_Cat_Empresa(_sesion.RFC, _sesion.UserName);
                System.Data.DataTable dt_Cat_Empresa = Cat_Empresa.Get_Empresas();

                dbo_Cat_Sucursal Cat_Sucursal = new dbo_Cat_Sucursal(_sesion.RFC, _sesion.UserName);
                System.Data.DataTable dt_Cat_Sucursal = Cat_Sucursal.Get_Sucursal_Por_Nombre("Matriz");

                string Razon_Social = dt_Cat_Empresa.Rows[0]["Razon_Social"].ToString();
                string Calle = dt_Cat_Sucursal.Rows[0]["Calle"].ToString();
                string Colonia = dt_Cat_Sucursal.Rows[0]["Colonia"].ToString();
                string Delegacion = dt_Cat_Sucursal.Rows[0]["Municipio"].ToString();
                string Ciudad = dt_Cat_Sucursal.Rows[0]["Población"].ToString();
                string CP = dt_Cat_Sucursal.Rows[0]["CP"].ToString();
                string Estado = dt_Cat_Sucursal.Rows[0]["Desc_Estado"].ToString();
                string Pais = dt_Cat_Sucursal.Rows[0]["Desc_Pais"].ToString();
                string TipoContacto = dt_Cat_Empresa.Rows[0]["Puesto_Contacto"].ToString();
                string NombreContacto = dt_Cat_Empresa.Rows[0]["Nombre_Contacto"].ToString();
                string Telefono = dt_Cat_Empresa.Rows[0]["Telefono_Contacto"].ToString();
                string CorreoElectronico = dt_Cat_Empresa.Rows[0]["Correo_Contacto"].ToString();                

                //Razón Social
                if (String.IsNullOrEmpty(Razon_Social))
                {
                    MessageBox.Show("Necesita ingresar su Razón social en el apartado de Empresa ubicado en el módulo de configuración");
                    return;
                }

	            //Calle	
                if (String.IsNullOrEmpty(Calle))
                {
                    MessageBox.Show("Necesita ingresar su Calle en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //Colonia	
                if (String.IsNullOrEmpty(Colonia))
                {
                    MessageBox.Show("Necesita ingresar su Colonia en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //Delegación	
                if (String.IsNullOrEmpty(Delegacion))
                {
                    MessageBox.Show("Necesita ingresar su Delegación / Municipio en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //Ciudad	
                if (String.IsNullOrEmpty(Ciudad))
                {
                    MessageBox.Show("Necesita ingresar su Ciudad en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //C.P.	
                if (String.IsNullOrEmpty(CP))
                {
                    MessageBox.Show("Necesita ingresar su C.P. en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //Estado
                if (String.IsNullOrEmpty(Estado))
                {
                    MessageBox.Show("Necesita ingresar su Estado en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //País	
                if (String.IsNullOrEmpty(Pais))
                {
                    MessageBox.Show("Necesita ingresar su País en el registro 'Matriz' del Catálogo Sucursales ubicado en el módulo de configuración");
                    return;
                }

	            //Tipo de Contacto	
                if (String.IsNullOrEmpty(TipoContacto))
                {
                    MessageBox.Show("Necesita ingresar su Puesto en el apartado de Empresa ubicado en el módulo de configuración");
                    return;
                }

	            //Nombre del Contacto	
                if (String.IsNullOrEmpty(NombreContacto))
                {
                    MessageBox.Show("Necesita ingresar su Nombre de Contacto en el apartado de Empresa ubicado en el módulo de configuración");
                    return;
                }

	            //Teléfono	
                if (String.IsNullOrEmpty(Telefono))
                {
                    MessageBox.Show("Necesita ingresar su Teléfono de Contacto en el apartado de Empresa ubicado en el módulo de configuración");
                    return;
                }

	            //Correo Electrónico	
                if (String.IsNullOrEmpty(CorreoElectronico))
                {
                    MessageBox.Show("Necesita ingresar su Correo Electrónico en el apartado de Empresa ubicado en el módulo de configuración");
                    return;
                }

                string fName = "EMIDA.xlsx";
                string Temp = System.IO.Path.GetTempPath();

                File.Copy(System.IO.Path.Combine(Directory.GetCurrentDirectory() + "\\_ArchivosParaBin\\", fName), System.IO.Path.Combine(Temp + "\\", fName), true);

                Microsoft.Office.Interop.Excel.Application xlsApp = default(Microsoft.Office.Interop.Excel.Application);
                Workbook xlsWB = default(Workbook);
                Worksheet xlsSheet = default(Worksheet);
                Range xlsCell = default(Range);

                xlsApp = new Microsoft.Office.Interop.Excel.Application();
                xlsApp.Visible = false;
                xlsWB = xlsApp.Workbooks.Open(System.IO.Path.Combine(Temp + "\\", fName));
                xlsSheet = xlsWB.Worksheets[1];
                                
                //B4
                xlsApp.Cells[4, 2] = Razon_Social;
                //C4
                xlsApp.Cells[4, 3] = Razon_Social;
                //K4
                xlsApp.Cells[4, 11] = Calle;
                //L4
                xlsApp.Cells[4, 12] = Colonia;
                //M4
                xlsApp.Cells[4, 13] = Delegacion;
                //N4
                xlsApp.Cells[4, 14] = Ciudad;
                //O4
                xlsApp.Cells[4, 15] = CP;
                //P4
                xlsApp.Cells[4, 16] = Estado;
                //Q4
                xlsApp.Cells[4, 17] = Delegacion;
                //R4
                xlsApp.Cells[4, 18] = Pais;
                //S4
                xlsApp.Cells[4, 19] = TipoContacto;
                //T4
                xlsApp.Cells[4, 20] = NombreContacto;
                //U4
                xlsApp.Cells[4, 21] = Telefono;
                //V4
                xlsApp.Cells[4, 22] = CorreoElectronico;

                //X4
                xlsApp.Cells[4, 24] = Calle;
                //Y4
                xlsApp.Cells[4, 25] = Colonia;
                //Z4
                xlsApp.Cells[4, 26] = Delegacion;
                //AA4
                xlsApp.Cells[4, 27] = Ciudad;
                //AB4
                xlsApp.Cells[4, 28] = CP;
                //AC4
                xlsApp.Cells[4, 29] = Estado;
                //AD4
                xlsApp.Cells[4, 30] = Delegacion;
                //AE4
                xlsApp.Cells[4, 31] = Pais;
                //AF4
                xlsApp.Cells[4, 32] = _sesion.RFC;

                xlsWB.Save();
                xlsWB.Close(false);

                // Close the Excel server.
                xlsApp.Quit();

                //ENVIA EL CORREO 
                SmtpClient mySmtpClient = new SmtpClient();
                MailMessage myMessage = new MailMessage();
                MailAddress fromAdd = new MailAddress("admin@siie.com.mx");

                myMessage.Subject = "[SIE PyMES Desktop] Alta de Comercio para EMIDA";
                myMessage.IsBodyHtml = true;

                myMessage.Body = "<br /><br />" + "Favor de reenviar este correo a EMIDA para dar de alta un comercio. Saludos!" + "<br />";

                myMessage.From = fromAdd;
                myMessage.To.Add("adolfol@siie.com.mx");
                mySmtpClient = new SmtpClient("smtp.uservers.net");

                FileStream stream = File.OpenRead(System.IO.Path.Combine(Temp + "\\", fName));
                Attachment attachment = new Attachment(stream, "ComercioEMIDA.xlsx");
                myMessage.Attachments.Add(attachment);

                mySmtpClient.Port = 587;
                mySmtpClient.Credentials = new NetworkCredential("admin@siie.com.mx", "Admin2013");
                mySmtpClient.Send(myMessage);

                stream.Close();
                File.Delete(System.IO.Path.Combine(Temp + "\\", fName));

                MessageBox.Show("Sus datos han sido enviados correctamete, pronto podra ver en esta pantalla la información para Tiempo Aire.");
                
                dbo_Trans_TiempoAire_RFC dbo_TA = new dbo_Trans_TiempoAire_RFC(_sesion.RFC, _sesion.UserName);
                dbo_TA.Insert_TiempoAire_RFC();
                dbo_TA.Insert_ArticulosTA();

                ((ScrollViewer)this.Parent).Content = new TiempoAire_TerminosProceso(ref _sesion);            
            }
            else
            {
                MessageBox.Show("Favor de aceptar los términos y condiciones para poder avanzar.");
            }
        }
    }
}
